<?php
use Migrations\AbstractMigration;

class SiteZhaopin extends AbstractMigration
{
    public function up()
    {

        $this->table('categories')
            ->addColumn('name', 'string', [
                'comment' => '分类名称',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('name_py', 'string', [
                'comment' => '分类名称，拼音/英文',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('create_time', 'datetime', [
                'comment' => '创建时间',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('update_time', 'datetime', [
                'comment' => '更新时间',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->create();

        $this->table('cities')
            ->addColumn('province_id', 'integer', [
                'comment' => '省份id',
                'default' => null,
                'limit' => 11,
                'null' => false,
            ])
            ->addColumn('name', 'string', [
                'comment' => '城市名称',
                'default' => null,
                'limit' => 255,
                'null' => false,
            ])
            ->addColumn('name_py', 'string', [
                'comment' => '城市名称 拼音',
                'default' => null,
                'limit' => 255,
                'null' => false,
            ])
            ->addColumn('create_time', 'datetime', [
                'comment' => '创建 时间',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('update_time', 'datetime', [
                'comment' => '更新时间',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addIndex(
                [
                    'province_id',
                ]
            )
            ->create();

        $this->table('jobs')
            ->addColumn('category_id', 'integer', [
                'comment' => '分类id',
                'default' => null,
                'limit' => 11,
                'null' => true,
            ])
            ->addColumn('school_id', 'integer', [
                'comment' => '学校 id',
                'default' => null,
                'limit' => 11,
                'null' => false,
            ])
            ->addColumn('name', 'string', [
                'comment' => '工作名称',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('salary', 'string', [
                'comment' => '工资待遇',
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('need_num', 'string', [
                'comment' => '招聘人数',
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('position', 'string', [
                'comment' => '职位类别',
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('gender', 'string', [
                'comment' => '性别要求',
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('age', 'string', [
                'comment' => '年龄要求',
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('education', 'string', [
                'comment' => '学历要求',
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('job_experience', 'string', [
                'comment' => '工作经验',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('job_address', 'string', [
                'comment' => '工作地址',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('job_intro', 'text', [
                'comment' => '职位描述',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('publish_date', 'string', [
                'comment' => '发布时间',
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('view_count', 'integer', [
                'comment' => '浏览次数',
                'default' => null,
                'limit' => 11,
                'null' => true,
            ])
            ->addColumn('deliver_count', 'string', [
                'comment' => '投递人数',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('create_time', 'timestamp', [
                'comment' => '创建时间',
                'default' => 'CURRENT_TIMESTAMP',
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('update_time', 'datetime', [
                'comment' => '更新时间',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('pageurl', 'string', [
                'comment' => '页面url',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addIndex(
                [
                    'category_id',
                ]
            )
            ->addIndex(
                [
                    'school_id',
                ]
            )
            ->create();

        $this->table('provinces')
            ->addColumn('name', 'string', [
                'comment' => '省份名',
                'default' => null,
                'limit' => 255,
                'null' => false,
            ])
            ->addColumn('name_py', 'string', [
                'comment' => '省份名  拼音',
                'default' => null,
                'limit' => 255,
                'null' => false,
            ])
            ->addColumn('create_time', 'datetime', [
                'comment' => '创建时间',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('update_time', 'datetime', [
                'comment' => '更新时间',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->create();

        $this->table('recruits')
            ->addColumn('city_id', 'integer', [
                'comment' => '城市id，归属于那个城市发布的招聘信息',
                'default' => null,
                'limit' => 11,
                'null' => true,
            ])
            ->addColumn('title', 'string', [
                'comment' => '招聘标题',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('serial_number', 'string', [
                'comment' => '序列号 如: 教师招聘网【2017】第102901号',
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('progress', 'string', [
                'comment' => '招聘进度',
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('up_to', 'string', [
                'comment' => '截至日期',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('content', 'text', [
                'comment' => '主要内容',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('position', 'string', [
                'comment' => '招聘职位，所有的HTML 标签 一起抓了',
                'default' => null,
                'limit' => 512,
                'null' => true,
            ])
            ->addColumn('address', 'string', [
                'comment' => '报名信息，地区',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('sign_way', 'string', [
                'comment' => '报名方式',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('contact', 'string', [
                'comment' => '联系人',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('phone', 'string', [
                'comment' => '咨询电话',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('website', 'string', [
                'comment' => '网址',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('sign_address', 'string', [
                'comment' => '报名地址',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('email', 'string', [
                'comment' => '邮箱',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('remark', 'string', [
                'comment' => '备注',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('publish_date', 'string', [
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('view_count', 'integer', [
                'comment' => '浏览次数',
                'default' => null,
                'limit' => 11,
                'null' => true,
            ])
            ->addColumn('create_time', 'datetime', [
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('update_time', 'datetime', [
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addIndex(
                [
                    'city_id',
                ]
            )
            ->create();

        $this->table('schools')
            ->addColumn('city_id', 'integer', [
                'comment' => '城市 id',
                'default' => null,
                'limit' => 11,
                'null' => false,
            ])
            ->addColumn('title', 'string', [
                'comment' => '学校名称/公司名称',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('intro', 'text', [
                'comment' => '学校介绍/公司介绍',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('type', 'string', [
                'comment' => '学校性质/公司性质',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('register_money', 'string', [
                'comment' => '注册资金',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('employee_num', 'string', [
                'comment' => '员工人数',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('location', 'string', [
                'comment' => '所在地区',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('official_website', 'string', [
                'comment' => '官网',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('address', 'string', [
                'comment' => '地址',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('create_time', 'timestamp', [
                'comment' => '创建时间',
                'default' => 'CURRENT_TIMESTAMP',
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('update_time', 'datetime', [
                'comment' => '更新时间',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('pageurl', 'string', [
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addIndex(
                [
                    'city_id',
                ]
            )
            ->create();

        $this->table('zhakao')
            ->addColumn('city', 'string', [
                'comment' => '城市',
                'default' => null,
                'limit' => 10,
                'null' => false,
            ])
            ->addColumn('title', 'string', [
                'comment' => '招考标题',
                'default' => null,
                'limit' => 255,
                'null' => false,
            ])
            ->addColumn('provinces', 'string', [
                'comment' => '省份',
                'default' => null,
                'limit' => 10,
                'null' => false,
            ])
            ->addColumn('provinces_py', 'string', [
                'comment' => '省份拼音',
                'default' => null,
                'limit' => 10,
                'null' => false,
            ])
            ->addColumn('city_py', 'string', [
                'comment' => '城市拼音',
                'default' => null,
                'limit' => 10,
                'null' => false,
            ])
            ->addColumn('schoolname', 'string', [
                'comment' => '学校',
                'default' => null,
                'limit' => 255,
                'null' => false,
            ])
            ->addColumn('serial_number', 'string', [
                'comment' => '文件号',
                'default' => null,
                'limit' => 255,
                'null' => false,
            ])
            ->addColumn('starttime', 'datetime', [
                'comment' => '发布日期',
                'default' => null,
                'limit' => null,
                'null' => false,
            ])
            ->addColumn('endtime', 'datetime', [
                'comment' => '截至日期',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('content', 'text', [
                'comment' => '主要内容',
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('recruittype', 'string', [
                'comment' => '招聘类型',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('workaddress', 'string', [
                'comment' => '工作地点',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('pageurl', 'string', [
                'comment' => '主区页面url',
                'default' => null,
                'limit' => 255,
                'null' => false,
            ])
            ->addColumn('sign_way', 'string', [
                'comment' => '报名方式',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('contact', 'string', [
                'comment' => '联系人',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('phone', 'string', [
                'comment' => '咨询电话',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('website', 'string', [
                'comment' => '网址',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('sign_address', 'string', [
                'comment' => '报名地址',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('email', 'string', [
                'comment' => '邮箱',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('remark', 'string', [
                'comment' => '备注',
                'default' => null,
                'limit' => 255,
                'null' => true,
            ])
            ->addColumn('publish_date', 'string', [
                'default' => null,
                'limit' => 128,
                'null' => true,
            ])
            ->addColumn('view_count', 'integer', [
                'comment' => '浏览次数',
                'default' => null,
                'limit' => 11,
                'null' => true,
            ])
            ->addColumn('create_time', 'datetime', [
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('update_time', 'datetime', [
                'default' => null,
                'limit' => null,
                'null' => true,
            ])
            ->addColumn('position', 'string', [
                'default' => null,
                'limit' => 2000,
                'null' => true,
            ])
            ->addColumn('city_id', 'integer', [
                'default' => null,
                'limit' => 11,
                'null' => true,
            ])
            ->addIndex(
                [
                    'city',
                ]
            )
            ->create();
    }

    public function down()
    {
        $this->dropTable('categories');
        $this->dropTable('cities');
        $this->dropTable('jobs');
        $this->dropTable('provinces');
        $this->dropTable('recruits');
        $this->dropTable('schools');
        $this->dropTable('zhakao');
    }
}
